栏目导航: 福建招生考试网 > 考研 > 考研试题 > 文章正文
 
清华大学2001年硕士研究生考试数据结构试题
福建招考网整理自:网络整理 2005-12-5 10:26:35
 一、试给出下列有关并查集(mfsets)的操作序列的运算结果:

  union(1,2) , union(3,4) , union(3,5) , union(1,7) , union(3,6) , union(8,9) , union(1,8) , union(3,10) , union(3,11) , union(3,12) , union(3,13) , union(14,15) , union(16,0) , union(14,16) , union(1,3) , union(1,14)。(union是合并运算,在以前的书中命名为merge)

  要求

  (1) 对于union(i,j),以i作为j的双亲; (5分)

  (2) 按i和j为根的树的高度实现union(i,j),高度大者为高度小者的双亲; (5分)

  (3) 按i和j为根的树的结点个数实现union(i,j),结点个数大者为结点个数小者的双亲; (5分)

  二、设在4地(A,B,C,D)之间架设有6座桥,如图所示:

  要求从某一地出发,经过每座桥恰巧一次,最后仍回到原地

  (1) 试就以上图形说明:此问题有解的条件是什么? (5分)

  (2) 设图中的顶点数为n,试用C或Pascal描述与求解此问题有关的数据结构并编写一个算法,找出满足要求的一条回路. (10分)

  三、针对以下情况确定非递归的归并排序的运行时间(数据比较次数与移动次数):

  (1) 输入的n个数据全部有序; (5分)

  (2) 输入的n个数据全部逆向有序; (5分)

  (3) 随机地输入n个数据. (5分)

  四、简单回答有关AVL树的问题.

  (1) 在有N个结点的AVL树中,为结点增加一个存放结点高度的数据成员,那么每一个结点需要增加多少个字位(bit)? (5分)

  (2) 若每一个结点中的高度计数器有8bit,那么这样的AVL树可以有多少层?最少有多少个关键码? (5分)

  五、设一个散列表包含hashSize=13个表项,.其下标从0到12,采用线性探查法解决冲突. 请按以下要求,将下列关键码散列到表中.

  10 100 32 45 58 126 3 29 200 400 0

  (1) 散列函数采用除留余数法,用%hashSize(取余运算)将各关键码映像到表中. 请指出每一个产生冲突的关键码可能产生多少次冲突. (7分)

  (2) 散列函数采用先将关键码各位数字折叠相加, 再用%hashSize将相加的结果映像到表中的办法. 请指出每一个产生冲突的关键码可能产生多少次冲突. (8分)

  六、设一棵二叉树的结点定义为

  struct BinTreeNode{

  ElemType data;

  BinTreeNode *leftChild, *rightChild;

  }

  现采用输入广义表表示建立二叉树. 具体规定如下:

  (1) 树的根结点作为由子树构成的表的表名放在表的最前面;

  (2) 每个结点的左子树和右子树用逗号隔开. 若仅有右子树没有左子树, 逗号不能省略.

  (3) 在整个广义表表示输入的结尾加上一个特殊的符号(例如”#”)表示输入结果.

  例如,对于如右图所示的二叉树, 其广义表表示为A(B(D,E(G,)),C(,F))

  A

  / \

  B C

  / \ \

  D E F

  /

  G

  此算法的基本思路是:依次从保存广义表的字符串ls中输入每个字符. 若遇到的是字母(假定以字母作为结点的值), 则表示是结点的值, 应为它建立一个新的结点, 并把该结点作为左子女(当k=1)或有子女(当k=2)链接到其双亲结点上. 若遇到的是左括号”(“, 则表明子表的开始,将k置为1;若遇到的是右括号”)”, 则表明子表结果. 若遇到的是逗号”,”, 则表示以左子女为根的子树处理完毕,应接着处理以右子女为根的子树, 将k置为2.

  在算法中使用了一个栈s, 在进入子表之前,将根结点指针进栈, 以便括号内的子女链接之用. 在子表处理结束时退栈. 相关的栈操作如下:

  MakeEmpty(s) 置空栈

  Push(s,p) 元素p进栈

  Pop(s) 进栈

  Top(s) 存取栈顶元素的函数

  下面给出了建立二叉树的算法, 其中有5个语句缺失. 请阅读此算法并把缺失的语句补上. (每空3分)

  Void CreateBinTree(BinTreeNode *&BT, char ls){

  Stacks; MakeEmpty(s);

  BT=NULL; //置二叉树

  BinTreeNode *p;

  int k;

  istream ins(ls); //把串ls定义为输入字符串流对象ins

  Char ch;

  ins>>ch; //从ins顺序读入一个字符

  While(ch!=”#”){ //逐个字符处理,直到遇到''#''为止

  Switch(ch){

  case’(‘: _______(1)_______

  k=1;

  break;

  case’)’: pop(s);

  break;

  case’,‘: _______(2)_______

  break;

  default: p=new BinTreeNode;

  _______(3)_______

  p->leftChild=NULL;

  p->rightChild=NULL;

  if(BT==NULL)

  _______(4)_______

  else if (k==1) top(s)->leftChild=p;

  else top(s)->rightChild=p;

  }

  _______(5)_______

  }

  }

  七、下面是一个用C编写的快速排序算法. 为了避免最坏情况,取基准记录pivot采用从left,right和mid=[(left+right)/2]中取中间值, 并交换到right位置的办法. 数组a存放待排序的一组记录, 数据类型为Type, left和right是呆排序子区间的最左端点和最右端点.

  Void quicksort(Type a&#;,int left,int right){

  Type temp;

  If(leftType pivot=median3(a,left,right);

  Int I=left, j=right-1;

  For( ; ; ){

  While(iWhile(iif(itemp=a[i]; a[j]=a[i]; a[i]=temp;

  I++; j--;

  }

  else break;

  }

  if(a[i]>pivot)

  {temp=a[i]: a[i]=a[right]; a[right]=temp;}

  quicksort(a,left,i-1); //递归排序左子区间

  quicksort(a,i+1,right); //递归排序右子区间

  }

  }

  (1) 用C或Pascal实现三者取中子程序 median3(a,left,right); (5分)

  (2) 改写 quicksort 算法, 不用栈消去第二个递归调用 quicksort(a,i+1,right); (5分)

  (3) 继续改写 quicksort 算法, 用栈消去剩下的递归调用. (5分)

网站版权与免责声明  
由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权等问题,请在两周内来电联系.
  资料库
·2007年我国独立学院本地生源比例情况(本
·2007年我国民办大学本地生源比例情况(本
·2008中国最受媒体关注独立学院排行榜
·2008中国最受媒体关注民办大学排行榜
·2008中国独立学院本科专业学费排行榜
·2008中国民办大学专业学费排行榜
·2008年中国独立学院排行榜100强
·2008年中国民办大学排行榜100强
·2008年中国独立学院排行榜10强
·2008年中国民办大学排行榜10强
·2008中国民办大学专科专业学费排行榜
·2008中国一流大学名单排行
·北京民办高校名单
·2008年新设置高校名单
·中国大学50强排行榜
·上海市列入985工程及211工程的院校名单
·各省高招办联系方式
·独立学院设置与管理办法-中华人民共和国教
·教育部2007年认定的国家级重点中等职业学
·2007年具有招生资格的独立院校名单
·2007年度经教育部审批不同意设置的高等学
·2007年度经教育部审批不同意设置的高等学
·2007年度经教育部审批同意设置的高等学校
·2007年度经教育部备案或审批同意设置的高
·2007年第二批高校特色专业建设点名单
·2007年度第一批高等学校特色专业建设点名
·福建省高等职业教育精品专业名单
·各学历层次高校学生毕业证书内容样本
·福建省2007年度第一批全国高校特色专业名
·中国校友会网2008中国大学排行榜501-600强
·中国校友会网2008中国大学排行榜401-500强
·中国校友会网2008中国大学排行榜301-400强
·中国校友会网2008中国大学排行榜201-300强
·2008年中国最受媒体关注大学排行榜100强
·2008年中国大学排行榜101-200强-中国校友
·中国校友会网2008中国大学排行榜100强
·2007年度国家精品课程(本科)名单
·2008年具有小语种单独招生资格的25所院校
·59所自主招生试点高校名单及联系方式
·自主招生高校名单截止2007年共59所
·2007年具有成人高等学历招生资格的成人高
·普通本科高校、高等职业学校国家励志奖学
·普通本科高校、高等职业学校国家助学金申
·普通本科高校、高等职业学校国家助学金管
·普通本科高校、高等职业学校国家奖学金管
·高等学校学生勤工助学管理办法
·中国校友会网2007中国最受媒体关注独立学
·2007中国独立学院学费排行榜
·中国校友会网2007年中国独立学院排行榜10
·中国校友会网2007中国最受媒体关注民办大
·中国校友会网2007中国最受媒体关注民办大
·中国校友会网2007中国民办大学学费排行榜
·中国校友会网2007年中国民办大学排行榜10
·教育部直属师范大学师范生免费教育实施办
·截止2007年5月8日具有招生资格的专科/高职
·2007年中国大学排行榜物资资源排行
·2007年中国大学排行榜教师资源排行
·2007年中国大学排行榜学生情况排行
·2007年中国大学排行榜学术成果排行
·2007年中国大学排行榜学术资源排行
·2007年中国大学排行榜声誉排行
·2007年中国大学排行榜综合指标排行
·具有教授或者副教授评审权的高等学校名单
·教育部关于公布2007年普通高等教育高职高
·留学中介服务机构名单(截至2007年3月15日
·厦门市被批准正式成立的民办高校名单
·中央教育部直属6所师范院校名单
·民办高等学校办学管理若干规定
·部分外国语专业单独招生试点高校名单
·香港最佳大学排名公布 港大等位列三甲
·开设港、澳、台、侨学生高考补习班学校名
·开设港、澳、台、华侨学生预科班学校名单
·部分招收华侨、港澳地区及台湾省学生学校
·全球MBA百强榜出炉
·2003-2007年贵州省大学前3名排行
·2003-2007年云南省大学前4名排行
·2003-2007年新疆区大学前3名排行
·2003-2007年甘肃省大学前3名排行
·2003-2007年广西自治区大学前4名排行
·2003-2007年福建省大学前4名排行